﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

namespace $safeprojectname$.Web
{
    /// <summary>
    ///     Item representation containing minimum to render the TreeView
    /// </summary>
    public interface ITVDataItem
    {
        /// <summary>
        ///     Current node unique identifier
        /// </summary>
        string ID { get; }

        /// <summary>
        ///     Current node's PARENT unique identifier
        /// </summary>
        string ParentId { get; }

        /// <summary>
        ///     Children
        /// </summary>
        IEnumerable<ITVDataItem> Items { get; }

        /// <summary>
        ///     What should be displayed as anchor text
        /// </summary>
        string Text { get; }

        /// <summary>
        ///     Relative navigation URL path, rendered as anchor href attribute
        /// </summary>
        string Href { get; }

        /// <summary>
        ///     Url path extenders for other then default 'controller/action/id'
        /// </summary>
        IDictionary<string, object> RouteValues { get; }

        /// <summary>
        ///     Can be used as the node picture. Should be in the form
        ///     '/i/Node15.gif' if Settings
        /// </summary>
        string ImagePath { get; }
    }
}